bina

The Art of Project Management

“Project management is the application of knowledge, skills, tools and techniques to project activities to meet the project requirements”, as defined by Gartner.

Being an integral part of software engineering processes along with the business analysis and requirement specification, design, programming and testing, project management has been a considerable debate for years. Even today, when company project management practices are becoming more mature, only about half of them (54%), according to survey results by the Project Management Institute (PMI), are fully aware of the importance and value of these practices.

Regardless of the industry, project management has proven to be a crucial element of a company’s efficiency and its eventual success. In fact, the organisations using proven project management practices waste 28% less money and implement projects that are 2.5 times more successful.

Project management professionals conclude that the definition of a successful project is one that is not only completed on time and within budget, but one that also delivers expected benefits.

Project Management Phases

Regardless of the scope, any project should follow a sequence of actions to be controlled and managed. According to the Project Management Institute (PMI), a typical project management process includes the following phases:

  • Initiation

  • Planning

  • Execution

  • Monitoring & Control

  • Closing

Used as a roadmap to accomplish specific tasks, these phases define the project management lifecycle. Yes, this structure is too general. A project usually has a number of internal stages within each phase. They can vary greatly depending on the scope of work, the team, and the industry and the project itself.

In attempts to find a universal approach to managing any project, humanity has developed a significant number of project management techniques and methodologies.

Traditional Project Management Methodologies

Based on the above-described classic framework, traditional methodologies take a step-by-step approach to the project execution. Thus, the project goes through the initiation, planning, execution, monitoring straight to its closure in consecutive stages.

Often called linear, this approach includes a number of internal phases which are sequential and executed in a chronological order. Applied most commonly within the construction or manufacturing industry, where little or no changes are required at every stage, traditional project management has found its application in software engineering as well.

Known as the waterfall model, it has been a dominant software development methodology since the early 1970s when formally described as:

“There are two essential steps common to all computer program developments, regardless of the size or complexity. There is first an analysis step, followed by a second coding step. This sort of very simple implementation concept is in fact all that is required if the effort is sufficiently small and if the final product is to be operated by those who built it - as it is typically done with computer programs for external use.”

Water fall model

Waterfall model has a strong emphasis on planning and specifications development, which takes up to 40% of the project time and budget. Another basic principle of this approach is the strict order of the project phases. A new project stage does not begin until the previous one is finished.

The method works well for clearly defined projects with a single deliverable and fixed deadline. The waterfall approach requires thorough planning, extensive project documentation and tight control over the development process. In theory, this should lead to on-time, on-budget delivery, low project risks and predictable final results.

However, when applied to the actual software engineering process, the Waterfall method tends to be slow, costly and inflexible due to numerous restrictions. In many cases, its inability to adjust the product to the evolving market requirements often results in a huge waste of resources and eventual project failure.

Agile Project Management Philosophy

As opposed to the traditional approach, Agile project management philosophy has been introduced as an attempt to make software engineering more flexible and efficient. With 94% of the organisations practicing agile in 2016, it has become the industry standard for project management.

The history of agile can be traced back to 1957: at that time Bernie Dimsdale, John von Neumann, Herb Jacobs, and Gerald Weinberg were using incremental development techniques (which are now known as Agile), building software for IBM and Motorola. Although, not knowing how to classify the approach they were practicing, they realized clearly that it was different from Waterfall in many ways.

However, the modern-day agile approach was officially introduced in 2001, when a group of 17 software development professionals met to discuss alternative project management methodologies. Having a clear vision of the flexible, lightweight and team-oriented software development approach, they mapped it out in the Manifesto for Agile Software Development. Complemented with the 12 Principles of Agile Software, the philosophy has come to be a universal and efficient new way of managing projects.

Agile methodologies take an iterative approach to software development. Unlike a straightforward linear waterfall model, agile projects consist of a number of smaller cycles – sprints. Each one of them is a project in miniature: it has a backlog and consists of design, implementation, testing and deployment stages within the pre-defined scope of work.

Water fall model

At the end of each sprint, a potentially shippable product increment is delivered. Thus, with every iteration new features are added to the product, which results in the gradual project growth. With the features being validated early in the development, the chances of delivering a potentially failed product are significantly lower. Let’s summarize the main Agile aspects:

  • Flexibility:

    The scope of work may change according to new requirements.

  • Work Breakdown:

    The project consists of small cycles (known as Sprints in Scrum).

  • Value of Teamwork:

    The team members work closely together and have a clear vision about their responsibilities.

  • Iterative Improvements:

    There is a frequent reassessment of the work done within a cycle to make the final product better.

  • Cooperation with a client:

    A customer is closely engaged in the development and can change the requirements or accept the team's suggestions.

Prioritising flexibility and rapid turnaround, the Agile approach offers the following benefits, according to the recent research:

  • Ability to manage the changing priorities (88%)

  • Increased team productivity through daily task allocation (83%)

  • Better project visibility due to the simple planning system (83%)

Agile Frameworks

Agile is an umbrella term for a vast variety of methodologies and techniques, sharing the same principles and values. Each of them has its own areas of use and distinctive features. The most popular frameworks are Scrum, Kanban, Hybrid, Lean, Bimodal and XP. Let's look at the key features in these frameworks:

Scrum:

  • The entire scope of work is broken down into short development cycles - Sprints.

  • The Sprint’s duration is from one to four weeks.

  • The team should strictly follow a work plan for each Sprint.

  • People involved in a project have predefined roles.

Kanban:

  • Development is built on workflow visualisation.

  • The current work is prioritised.

  • There are no timeboxed development cycles.

  • The team can change the work plan at any time.

Hybrid:

  • Agile and Waterfall complement each other.

  • Agile software development is held under Waterfall conditions (fixed deadline, forecasted budget and thorough risk assessment.

Bimodal:

  • There are two separate modals at work - Traditional (Mode 1) & Agile (Mode 2).

  • Two separate teams are working on projects with different goals.

  • The Mode 1 team maintains IT system infrastructure.

  • The Mode 2 team delivers innovative applications.

  • Cross-team collaboration is important.

Lean:

  • The framework promotes fast software development with less effort, time and cost.

  • The development cycle is as short as possible.

  • The product delivered early is being continuously improved.

  • The team is independent and has a wide range of responsibilities than those in Scrum, Bimodal and Hybrid.

  • Developers can also formulate the product’s concept.

XP:

  • The focus is on technical aspects of software development.

  • XP introduces engineering practices aimed at helping developers write a clear code.

  • Product development includes consistent stages: core writing, testing, analysing, designing and continuous integration of code.

  • Face to face communication within the team and customer involvement in development are crucial.

The Agile approach is often mistakenly considered to be a single methodology. Yet, there are dozens of methodologies and certain practices that have not been touched upon in this research.

Regardless of the exact methodologies and techniques they use, Agile teams have proven to increase profits 37% faster and generate 30% more revenue than non-agile companies. Higher speed, flexibility, and productivity achieved through such approaches are the key drivers which motivate more and more organizations to switch to Agile.